(define (square x) (* x x))
;用lambda构造过程, 用let创建局部变量
(define (f x y)
    (define (f-helper a b)
        (+ (* x (square a)) 
           (* y b)
           (* a b)))
    (f-helper (+ 1 (* x y))
              (- 1 y)))

(define (f-lambda x y)
    ((lambda (a b)
        (+ (* x (square a))
           (* y b)
           (* a b)))
     (+ 1 (* x y))
     (- 1 y)))

(define (f-let x y)
    (let ((a (+ 1 (* x y)))
          (b (- 1 y)))
         (+ (* x (square a))
            (* y b)
            (* a b))))